[GitHub] BaseブランチにMerge済みの変更がPull Requestに反映されない時の対処
こんにちは、CX事業本部の若槻です。
今回は、GitHubでBaseブランチにMerge済みの変更がPull Requestに反映されない時の対処についてです。
Baseブランチの変更がPull Requestに反映されない
develop
をBaseブランチとするfeature1
のPull Requestを作成しました。
さらに並行して、feature1
をBaseブランチとするfeature2
のPull Requestを作成しました。
ここでfeature1
のレビューが完了したため、Pull Requestをdevelop
にMergeしました。
その後feature2
のPull Requestを見るとMergeしたはずのfeature1
の変更が残ったままとなってしまっています。
図にすると、①→①'→①''→②→②’→②''→③の順で操作を行った状況となります。
原因
diffの計算に使用するBaseブランチの情報はPull Request作成時のものが使用されるためのようです。
対処方法
以下のいずれかの方法で対処できます。
方法1. Baseブランチを手動でMergeする
Gitコマンドを利用した方法です。ローカルでfeature2
にリモートのdevelop
をMergeし、Pushします。
% git checkout feature2 % git pull origin develop % git push origin feature2
するとfeature1
の変更がPull Requestの履歴から消えました。
メリット
- Pull Requestを作り直す必要がない
デメリット
- Pull Requestの履歴にBaseブランチをMergeしたログが残る
方法2. Baseブランチを変更して戻す
画面操作を利用した方法です。
Pull Requestタイトル右の[Edit]をクリックします。
Baseブランチの選択でdevelop
以外のブランチを選択します。
確認ダイアログで[Cahange base]をクリックします。
同様の操作を行いBaseブランチを再度変更して元のdevelop
に戻します。
するとfeature1
の変更がPull Requestの履歴から消えました。
メリット
- Pull Requestを作り直す必要がない
デメリット
- Pull Requestの履歴にBaseブランチを変更したログが残る
方法3. Pull Requestを作り直す
feature2
のPull Requestを単に作り直しすことによっても対処が可能です。方法2、3に比べて手間は大きい気がします。
メリット
- 履歴のきれいなPull Requestが作られる
デメリット
- MergeされずにcloseされたPull Requestのゴミが残る
- コメント等は書き直し
おわりに
GitHubでBaseブランチにMerge済みの変更がPull Requestに反映されない時の対処についてでした。お好きな方法をどうぞ。
参考
以上